import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

# 1. 读取图片并转换为NumPy数组
image = Image.open("face.png")
im = np.array(image)


# 2. 定义旋转函数
def rotate_image(image, degrees):
    """旋转图片（支持90、180、270度）"""
    if degrees == 90:
        return np.rot90(image, k=1)  # 逆时针90度
    elif degrees == 180:
        return np.rot90(image, k=2)  # 逆时针180度
    elif degrees == 270:
        return np.rot90(image, k=3)  # 逆时针270度
    else:
        raise ValueError("只支持90、180、270度旋转")


# 3. 旋转图片并保存
rotations = [90, 180, 270]
for angle in rotations:
    rotated = rotate_image(im, angle)

    # 显示图片
    plt.figure()
    plt.imshow(rotated)
    plt.title(f"旋转 {angle}度")
    plt.axis('off')
    plt.show()

    # 保存图片
    Image.fromarray(rotated).save(f"rotated_{angle}deg.png")